From 645dd4e0d8e91bab284f323bcab4c061f1147bc0 Mon Sep 17 00:00:00 2001 From: Camila Ayres Date: Mon, 17 Mar 2025 19:09:32 +0100 Subject: [PATCH] fix(migration): import proxy and general settings from legacy config. Signed-off-by: Camila Ayres --- src/gui/accountmanager.cpp | 21 ++++++++++++++++++++- src/libsync/clientproxy.cpp | 28 ++++++++++++++++++++++++++++ src/libsync/clientproxy.h | 1 + 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/gui/accountmanager.cpp b/src/gui/accountmanager.cpp index 1ff8dc4fb..cfcce16a4 100644 --- a/src/gui/accountmanager.cpp +++ b/src/gui/accountmanager.cpp @@ -23,6 +23,7 @@ #include "libsync/configfile.h" #include "libsync/cookiejar.h" #include "libsync/theme.h" +#include "libsync/clientproxy.h" #include #include @@ -60,7 +61,6 @@ constexpr auto networkDownloadLimitSettingC = "networkDownloadLimitSetting"; constexpr auto networkUploadLimitC = "networkUploadLimit"; constexpr auto networkDownloadLimitC = "networkDownloadLimit"; constexpr auto encryptionCertificateSha256FingerprintC = "encryptionCertificateSha256Fingerprint"; -constexpr auto generalC = "General"; constexpr auto dummyAuthTypeC = "dummy"; constexpr auto httpAuthTypeC = "http"; @@ -82,6 +82,15 @@ constexpr auto maxAccountsVersion = 13; constexpr auto maxAccountVersion = 13; constexpr auto serverHasValidSubscriptionC = "serverHasValidSubscription"; + +constexpr auto generalC = "General"; +constexpr auto isVfsEnabledC = "isVfsEnabled"; +constexpr auto launchOnSystemStartupC = "launchOnSystemStartup"; +constexpr auto optionalServerNotificationsC = "optionalServerNotifications"; +constexpr auto promptDeleteC = "promptDeleteAllFiles"; +constexpr auto showCallNotificationsC = "showCallNotifications"; +constexpr auto showChatNotificationsC = "showChatNotifications"; +constexpr auto showInExplorerNavigationPaneC = "showInExplorerNavigationPane"; } @@ -251,6 +260,16 @@ bool AccountManager::restoreFromLegacySettings() } } + ConfigFile configFile; + configFile.setVfsEnabled(settings->value(QLatin1String(isVfsEnabledC)).toBool()); + configFile.setLaunchOnSystemStartup(settings->value(QLatin1String(launchOnSystemStartupC)).toBool()); + configFile.setOptionalServerNotifications(settings->value(QLatin1String(optionalServerNotificationsC)).toBool()); + configFile.setPromptDeleteFiles(settings->value(QLatin1String(promptDeleteC)).toBool()); + configFile.setShowCallNotifications(settings->value(QLatin1String(showCallNotificationsC)).toBool()); + configFile.setShowChatNotifications(settings->value(QLatin1String(showChatNotificationsC)).toBool()); + configFile.setShowInExplorerNavigationPane(settings->value(QLatin1String(showInExplorerNavigationPaneC)).toBool()); + ClientProxy().setupQtProxyFromSettings(*settings); + // Try to load the single account. if (!settings->childKeys().isEmpty()) { settings->beginGroup(accountsC); diff --git a/src/libsync/clientproxy.cpp b/src/libsync/clientproxy.cpp index 48c277de6..41fd7f6c2 100644 --- a/src/libsync/clientproxy.cpp +++ b/src/libsync/clientproxy.cpp @@ -18,6 +18,17 @@ #include #include #include +#include + +namespace { + constexpr auto proxyC = "Proxy"; + constexpr auto proxyTypeC = "Proxy/type"; + constexpr auto proxyHostC = "Proxy/host"; + constexpr auto proxyPortC = "Proxy/port"; + constexpr auto proxyUserC = "Proxy/user"; + constexpr auto proxyPassC = "Proxy/pass"; + constexpr auto proxyNeedsAuthC = "Proxy/needsAuth"; +} namespace OCC { @@ -128,6 +139,23 @@ void ClientProxy::setupQtProxyFromConfig() } } +void ClientProxy::setupQtProxyFromSettings(const QSettings &settings) +{ + if (settings.value(QLatin1String(proxyTypeC)).isNull()) { + qCInfo(lcClientProxy) << "No Proxy settings found."; + return; + } + + OCC::ConfigFile configFile; + const auto proxyType = settings.value(QLatin1String(proxyTypeC)).toInt(); + configFile.setProxyType(proxyType, + settings.value(QLatin1String(proxyHostC)).toString(), + settings.value(QLatin1String(proxyPortC)).toInt(), + settings.value(QLatin1String(proxyNeedsAuthC)).toBool(), + settings.value(QLatin1String(proxyUserC)).toString(), + settings.value(QLatin1String(proxyPassC)).toString()); +} + void ClientProxy::lookupSystemProxyAsync(const QUrl &url, QObject *dst, const char *slot) { auto *runnable = new SystemProxyRunnable(url); diff --git a/src/libsync/clientproxy.h b/src/libsync/clientproxy.h index 77c1ee804..f1104d85d 100644 --- a/src/libsync/clientproxy.h +++ b/src/libsync/clientproxy.h @@ -46,6 +46,7 @@ public: public slots: void setupQtProxyFromConfig(); + void setupQtProxyFromSettings(const QSettings &settings); }; class OWNCLOUDSYNC_EXPORT SystemProxyRunnable : public QObject, public QRunnable -- 2.30.2